package com.ssy.lingxi.after.sale.service;

import com.ssy.lingxi.after.sale.model.vo.request.CommodityPageVO;
import com.ssy.lingxi.after.sale.model.vo.request.DeliveryGoodsPageVO;
import com.ssy.lingxi.after.sale.model.vo.request.ReceiveGoodsPageVO;
import com.ssy.lingxi.after.sale.model.vo.response.CommodityQueryVO;
import com.ssy.lingxi.after.sale.model.vo.response.DeliveryGoodsVO;
import com.ssy.lingxi.after.sale.model.vo.response.ReceiveGoodsVO;
import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;

import java.util.List;

/**
 * 退货发货接口
 * @author 伍将
 * @date 2020/10/19
 **/
public interface IReturnDeliveryGoodsService {

    /**
     * 分页查询发货
     * @author 伍将
     * @date 2020/10/19
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.DeliveryGoodsVO>>
     **/
    Wrapper<PageData<DeliveryGoodsVO>> pageDeliveryGoods(UserLoginCacheDTO user, DeliveryGoodsPageVO pageVO);

    /**
     * 分页查询收货
     * @author 伍将
     * @date 2020/10/19
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReceiveGoodsVO>>
     **/
    Wrapper<PageData<ReceiveGoodsVO>> pageReceiveGoods(UserLoginCacheDTO user,ReceiveGoodsPageVO pageVO);

    /**
     * 获取发货列表
     * @param returnId 换货id
     * @return
     */
    List<DeliveryGoodsVO> getDeliveryList(Long returnId, Boolean isSupplier);

    /**
     * 物流服务获取退货商品
     * @author 伍将
     * @date 2020/12/8
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<CommodityQueryVO>> pageCommodityByLogistics(CommodityPageVO pageVO);
}
